import 'package:flutter/material.dart';

void main() => runApp(MyMaterialApp());

class MyMaterialApp extends StatelessWidget {
  // 这是整个应用的主组件
  @override
  Widget build(BuildContext context) {
    // Material 风格应用
    return MaterialApp(
      // 自定义主题
      theme: ThemeData(
        // 主题色
        primarySwatch: Colors.green,
      ),
      // 设置首页
      home: MyHomePage(),
      title: 'MateriaApp 示例',
      // 路由配置
      routes: {
        '/first': (BuildContext context) => FirstPage(), // 添加路由
        '/second': (BuildContext context) => SecondPage(),
      },
      initialRoute: '/first', // 初始路由页面为 first 页面
    );
  }
}

// 这是一个可改变的 Widget
class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('MateriaApp 示例'),
      ),
      body: Center(
        child: Text(
          '主页',
          style: TextStyle(fontSize: 28.0),
        ),
      ),
    );
  }
}

// 第一个路由页面
class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('这是第一页'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            // 路由跳转到第二个页面
            Navigator.pushNamed(context, '/second');
          },
          child: Text(
            'First Button',
            style: TextStyle(fontSize: 28.0),
          ),
        ),
      ),
    );
  }
}

// 第二个路由页面
class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('这是第二页'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            // 路由跳转到第一个页面
            Navigator.pushNamed(context, '/first');
          },
          child: Text(
            'Second Button',
            style: TextStyle(fontSize: 28.0),
          ),
        ),
      ),
    );
  }
}
